#pragma once
#ifndef STORAGEVISITOR_H_
#define STORAGEVISITOR_H_
#include <boost/variant.hpp>
#include <vector>
#include "../common/DataType.h"
namespace LightChart {
class StorageVisitor: public boost::static_visitor<DataType> {
public:
	DataType operator()(std::vector<int> &) const {
		return INTEGER;
	}
	DataType operator()(std::vector<double> &) const {
		return DOUBLE_PRECISION;
	}
	DataType operator()(std::vector<std::string> &) const {
		return S_TEXT;
	}
	DataType operator()(int &) const {
		return INTEGER;
	}
	DataType operator()(double &) const {
		return DOUBLE_PRECISION;
	}
	DataType operator()(std::string &) const {
		return S_TEXT;
	}
};

} /* namespace LightChart */
#endif /* STORAGEVISITOR_H_ */
